#include<bits/stdc++.h>
using namespace std;


class Solution
{
private:
    /* data */
public:
    int deleteAndEarn(vector<int>& nums){
        int imax=0;
        int imin=INT_MAX;
        for(auto i:nums){
            imax=max(imax,i);
            imin=min(imin,i);
        }
        vector<int> vec(imax+3,0);
        for(auto i:nums){
            ++vec[i];
        }
        for(int i=imax;i>=imin;--i){
            vec[i]=max(vec[i+1],vec[i+2]+i*vec[i]);
            // cout<<vec[i]<<endl;
        }
        return vec[imin];
    }
};

int main(int argc, char const *argv[])
{
    vector<int>nums={3,4,2};
    // vector<int>nums={1,1};
    Solution s;
    int res = s.deleteAndEarn(nums);
    cout<<res<<endl;
    return 0;
}


